home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / AIFF.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  4.6 KB  |  220 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        AIFF.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT AIFF;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __AIFF__}
  27. {$SETC __AIFF__ := 1}
  28.  
  29. {$I+}
  30. {$SETC AIFFIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$PUSH}
  40. {$ALIGN MAC68K}
  41. {$LibExport+}
  42.  
  43. CONST
  44.     AIFFID                        = 'AIFF';
  45.     AIFCID                        = 'AIFC';
  46.     FormatVersionID                = 'FVER';
  47.     CommonID                    = 'COMM';
  48.     FORMID                        = 'FORM';
  49.     SoundDataID                    = 'SSND';
  50.     MarkerID                    = 'MARK';
  51.     InstrumentID                = 'INST';
  52.     MIDIDataID                    = 'MIDI';
  53.     AudioRecordingID            = 'AESD';
  54.     ApplicationSpecificID        = 'APPL';
  55.     CommentID                    = 'COMT';
  56.     NameID                        = 'NAME';
  57.     AuthorID                    = 'AUTH';
  58.     CopyrightID                    = '(c) ';
  59.     AnnotationID                = 'ANNO';
  60.  
  61.     NoLooping                    = 0;
  62.     ForwardLooping                = 1;
  63.     ForwardBackwardLooping        = 2;
  64. { AIFF-C Versions }
  65.     AIFCVersion1                = $A2805140;
  66.  
  67. { Compression Names }
  68.     NoneName     = 'not compressed';
  69.     ACE2to1Name  = 'ACE 2-to-1';
  70.     ACE8to3Name  = 'ACE 8-to-3';
  71.     MACE3to1Name = 'MACE 3-to-1';
  72.     MACE6to1Name = 'MACE 6-to-1';
  73.  
  74. { Compression Types }
  75.     NoneType                    = 'NONE';
  76.     ACE2Type                    = 'ACE2';
  77.     ACE8Type                    = 'ACE8';
  78.     MACE3Type                    = 'MAC3';
  79.     MACE6Type                    = 'MAC6';
  80.  
  81.     
  82. TYPE
  83.     ID = LONGINT;
  84.  
  85.     MarkerIdType = INTEGER;
  86.  
  87.     ChunkHeader = RECORD
  88.         ckID:                    ID;
  89.         ckSize:                    LONGINT;
  90.     END;
  91.     ContainerChunk = RECORD
  92.         ckID:                    ID;
  93.         ckSize:                    LONGINT;
  94.         formType:                ID;
  95.     END;
  96.     FormatVersionChunk = RECORD
  97.         ckID:                    ID;
  98.         ckSize:                    LONGINT;
  99.         timestamp:                LONGINT;
  100.     END;
  101.     FormatVersionChunkPtr = ^FormatVersionChunk;
  102.  
  103.     CommonChunk = RECORD
  104.         ckID:                    ID;
  105.         ckSize:                    LONGINT;
  106.         numChannels:            INTEGER;
  107.         numSampleFrames:        LONGINT;
  108.         sampleSize:                INTEGER;
  109.         sampleRate:                extended80;
  110.     END;
  111.     CommonChunkPtr = ^CommonChunk;
  112.  
  113.     ExtCommonChunk = RECORD
  114.         ckID:                    ID;
  115.         ckSize:                    LONGINT;
  116.         numChannels:            INTEGER;
  117.         numSampleFrames:        LONGINT;
  118.         sampleSize:                INTEGER;
  119.         sampleRate:                extended80;
  120.         compressionType:        ID;
  121.         compressionName:        PACKED ARRAY [0..0] OF CHAR;            { variable length array, Pascal string }
  122.     END;
  123.     ExtCommonChunkPtr = ^ExtCommonChunk;
  124.  
  125.     SoundDataChunk = RECORD
  126.         ckID:                    ID;
  127.         ckSize:                    LONGINT;
  128.         offset:                    LONGINT;
  129.         blockSize:                LONGINT;
  130.     END;
  131.     SoundDataChunkPtr = ^SoundDataChunk;
  132.  
  133.     Marker = RECORD
  134.         id:                        MarkerIdType;
  135.         position:                LONGINT;
  136.         markerName:                Str255;
  137.     END;
  138.     MarkerChunk = RECORD
  139.         ckID:                    ID;
  140.         ckSize:                    LONGINT;
  141.         numMarkers:                INTEGER;
  142.         Markers:                ARRAY [0..0] OF Marker;                    { variable length array }
  143.     END;
  144.     MarkerChunkPtr = ^MarkerChunk;
  145.  
  146.     AIFFLoop = RECORD
  147.         playMode:                INTEGER;
  148.         beginLoop:                MarkerIdType;
  149.         endLoop:                MarkerIdType;
  150.     END;
  151.     InstrumentChunk = PACKED RECORD
  152.         ckID:                    ID;
  153.         ckSize:                    LONGINT;
  154.         baseFrequency:            UInt8;
  155.         detune:                    UInt8;
  156.         lowFrequency:            UInt8;
  157.         highFrequency:            UInt8;
  158.         lowVelocity:            UInt8;
  159.         highVelocity:            UInt8;
  160.         gain:                    INTEGER;
  161.         sustainLoop:            AIFFLoop;
  162.         releaseLoop:            AIFFLoop;
  163.     END;
  164.     InstrumentChunkPtr = ^InstrumentChunk;
  165.  
  166.     MIDIDataChunk = RECORD
  167.         ckID:                    ID;
  168.         ckSize:                    LONGINT;
  169.         MIDIdata:                PACKED ARRAY [0..0] OF SInt8;            { variable length array }
  170.     END;
  171.     MIDIDataChunkPtr = ^MIDIDataChunk;
  172.  
  173.     AudioRecordingChunk = RECORD
  174.         ckID:                    ID;
  175.         ckSize:                    LONGINT;
  176.         AESChannelStatus:        PACKED ARRAY [0..23] OF SInt8;
  177.     END;
  178.     AudioRecordingChunkPtr = ^AudioRecordingChunk;
  179.  
  180.     ApplicationSpecificChunk = RECORD
  181.         ckID:                    ID;
  182.         ckSize:                    LONGINT;
  183.         applicationSignature:    OSType;
  184.         data:                    PACKED ARRAY [0..0] OF SInt8;            { variable length array }
  185.     END;
  186.     ApplicationSpecificChunkPtr = ^ApplicationSpecificChunk;
  187.  
  188.     Comment = RECORD
  189.         timeStamp:                LONGINT;
  190.         marker:                    MarkerIdType;
  191.         count:                    INTEGER;
  192.         text:                    PACKED ARRAY [0..0] OF CHAR;            { variable length array, Pascal string }
  193.     END;
  194.     CommentsChunk = RECORD
  195.         ckID:                    ID;
  196.         ckSize:                    LONGINT;
  197.         numComments:            INTEGER;
  198.         comments:                PACKED ARRAY [0..0] OF Comment;            { variable length array }
  199.     END;
  200.     CommentsChunkPtr = ^CommentsChunk;
  201.  
  202.     TextChunk = RECORD
  203.         ckID:                    ID;
  204.         ckSize:                    LONGINT;
  205.         text:                    PACKED ARRAY [0..0] OF CHAR;            { variable length array, Pascal string }
  206.     END;
  207.     TextChunkPtr = ^TextChunk;
  208.  
  209.  
  210. {$ALIGN RESET}
  211. {$POP}
  212.  
  213. {$SETC UsingIncludes := AIFFIncludes}
  214.  
  215. {$ENDC} {__AIFF__}
  216.  
  217. {$IFC NOT UsingIncludes}
  218.  END.
  219. {$ENDC}
  220.